package com.lord.otter.component.infrastructure.retry.strategy;

import com.lord.otter.component.infrastructure.retry.constant.ExecModel;
import lombok.Builder;
import lombok.Data;

/**
 * 重试参数
 *
 * @author lord
 * 2025/8/14 10:49
 */
@Data
@Builder
public class RetryParameter {
    /**
     * 调用策略
     */
    private ExecModel execModel;
    /**
     * 多久后重试(毫秒)
     * 第一次延迟时间
     */
    private Long delay;
    /**
     * 最大重试次数
     */
    private Integer maxRetryNumber;
    /**
     * 步长(毫秒)
     */
    private Long step;
    /**
     * N次幂 - 左位移 位数
     * com.lord.otter.infrastructure.retry.constant.ExecModel#POW_STEP时生效
     */
    private Integer pow;
}
